<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="bzqYJ" id="bzqYJ"><span data-lake-id="u44df9838" id="u44df9838">典型回答</span></h1>
  <p data-lake-id="uf56c6300" id="uf56c6300"><br></p>
  <p data-lake-id="udd0e4a51" id="udd0e4a51"><span data-lake-id="u58a4df2b" id="u58a4df2b">在我们的业务逻辑代码中，很重要的一部分是数据库的增删改查的逻辑，那么，如果对这部分代码进行单元测试呢？</span></p>
  <p data-lake-id="uaa725385" id="uaa725385"><span data-lake-id="ua64f5ec5" id="ua64f5ec5">​</span><br></p>
  <p data-lake-id="ub9d8cb30" id="ub9d8cb30"><span data-lake-id="u85b4bad4" id="u85b4bad4">如果直连数据库的话，不仅操作比较慢，还会造成大量的脏数据，而且数据库中已有的一些历史数据也可能会影响单元测试的结果，那么，有什么好的办法呢？</span></p>
  <p data-lake-id="u236f2fdc" id="u236f2fdc"><span data-lake-id="u710909f7" id="u710909f7">​</span><br></p>
  <p data-lake-id="u3e342a49" id="u3e342a49"><span data-lake-id="u967a1773" id="u967a1773">那就是可以通过</span><strong><span data-lake-id="ud1d7109d" id="ud1d7109d">内存数据库</span></strong><span data-lake-id="u693972eb" id="u693972eb">来帮助我们解决上面的问题，内存数据库就是主要依靠内存存储数据的数据库管理系统，在单元测试时使用内存数据库就可以在单测运行时初始化数据库及表结构及数据，在运行结束后直接回收掉。特别的方便。</span></p>
  <p data-lake-id="uf623fbe1" id="uf623fbe1"><span data-lake-id="u012140bb" id="u012140bb">​</span><br></p>
  <p data-lake-id="ua97c4c31" id="ua97c4c31"><strong><span data-lake-id="uc010c38d" id="uc010c38d">H2 数据库</span></strong><span data-lake-id="u282d485b" id="u282d485b">是一个比较好用的内存数据库，它可以随着程序启动去创建数据表和数据，随着程序关闭而销毁，非常方便，可以作为单元测试数据库的替代品；</span></p>
  <p data-lake-id="u6a72a12d" id="u6a72a12d"><span data-lake-id="uda1e824c" id="uda1e824c">​</span><br></p>
  <p data-lake-id="ufd0bf8d1" id="ufd0bf8d1"><span data-lake-id="u4717fc9d" id="u4717fc9d">关于内存数据库的更多细节，面试的时候一般不太会追问的更多，这里就不展开介绍了，大家感兴趣的话，可以去</span></p>
  <p data-lake-id="u45b0d50d" id="u45b0d50d"><span data-lake-id="ufd6465cb" id="ufd6465cb">​</span><br></p>
  <p data-lake-id="u533c559a" id="u533c559a"><span data-lake-id="uf23ef5cf" id="uf23ef5cf" class="lake-fontsize-11" style="color: rgb(51, 51, 51)">官网地址：</span><a href="http://www.h2database.com/html/main.html" target="_blank" data-lake-id="u4c6d0df7" id="u4c6d0df7"><span data-lake-id="u94b2b7ce" id="u94b2b7ce">http://www.h2database.com/html/main.html</span></a></p>
  <p data-lake-id="u02180565" id="u02180565"><span data-lake-id="u076a80b3" id="u076a80b3" class="lake-fontsize-11" style="color: rgb(51, 51, 51)">github地址：</span><a href="https://github.com/h2database/h2database" target="_blank" data-lake-id="ud447f744" id="ud447f744"><span data-lake-id="u7af83986" id="u7af83986">https://github.com/h2database/h2database</span></a></p>
  <p data-lake-id="uaf706085" id="uaf706085"><span data-lake-id="u9fd1c640" id="u9fd1c640">​</span><br></p>
  <p data-lake-id="u90c64abd" id="u90c64abd"><span data-lake-id="u2fde51ee" id="u2fde51ee">查看更多资料。</span></p>
 </body>
</html>